
  function TreeNode(x) {
    this.val = x;
    this.left = null;
    this.right = null;
  }

/**
 * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
 *
 * 
 * @param pRoot TreeNode类 
 * @return TreeNode类
 */
function Mirror( pRoot ) {
    // write code here
    // 对于一个节点来说 交换左右子树 进一步 将左右子树分别求镜像
    // 先判断根节点是空节点
    if(pRoot === null) return null
    // 根节点不为null 交换左右子树
    // 临时变量存放左子树
    var temp = pRoot.left
    // 将右子树赋值给左子树指针 
    pRoot.left = pRoot.right
    // 将临时变量赋值给右子树指针
    pRoot.right = temp
    // 左右子树 再做一个镜像
    Mirror(pRoot.left)
    Mirror(pRoot.right)
    // 最后返回原有的根节点
    return pRoot
}
module.exports = {
    Mirror : Mirror
};